/**
 * 水印上传模块
 */
function Upload(){
	this.fileLength = 0;
	this.succFlag = "";
}
Upload.prototype = {
	init:function(serverUrl,baseUrl,limitNum,auto){
		var that = this;
		if(auto==null || auto=='' || typeof(auto)=='undefined'){
			auto = false;
		}
		//console.log(BASE_URL);
		var uploader = WebUploader.create({
		    // 选完文件后，是否自动上传。
		    auto:true,
		    // swf文件路径
		    swf:baseUrl + '/Uploader.swf',
		    // 文件接收服务端。
		    server:serverUrl,
		    // 选择文件的按钮。可选。
		    // 内部根据当前运行是创建，可能是input元素，也可能是flash.
		    pick:'#filePicker',
		    // 不压缩image, 默认如果是jpeg，文件上传前会压缩一把再上传！
		    resize: false,
		    accept: {
		        title: 'Images',
		        extensions: 'gif,jpg,jpeg,bmp,png',
		        mimeTypes: 'image/*'
		    },
		    compress:false,
			fileNumLimit:limitNum,
			formData:{}
		});
		// 当有文件添加进来的时候
		uploader.on( 'fileQueued', function( file ) {
		    var $li = $('<div id="'+file.id+'" class="webuploader-li">'+'<img class="img-thumbnail"><a href="javascript:;" id="removeFile_'+file.id+'" class="u-mt-5 btn-block btn btn-danger button-sm">移除</a></div>');
				    var $img = $li.find('img');
				    // $list为容器jQuery实例
				    $("#fileList").append($li);
				    $("#removeFile_"+file.id).click(function(){
				    	uploader.removeFile(file);
				    	$(this).parent("div.webuploader-li").remove();
				    	if(that.fileLength>0){
				    		that.fileLength--;
				    	}
				    });

		    // 创建缩略图
		    // 如果为非图片文件，可以不用调用此方法。
		    // thumbnailWidth x thumbnailHeight 为 100 x 100
		    uploader.makeThumb( file, function( error, src ) {
		        if ( error ) {
		            $img.replaceWith('<span>不能预览</span>');
		            return;
		        }

		        $img.attr( 'src', src );
		    }, 100, 100 );
		});
		// 文件上传过程中创建进度条实时显示。
		uploader.on( 'uploadProgress', function( file, percentage ) {
		    var $li = $( '#'+file.id ),
		        $percent = $li.find('.progress span');
		    // 避免重复创建
		    if ( !$percent.length ) {
		        $percent = $('<p class="progress"><span>正在上传</span></p>')
		                .appendTo( $li )
		                .find('span');
		    }
		    $percent.css( 'width', percentage * 100 + '%' );
		});
		// 文件上传成功，给item添加成功class, 用样式标记上传成功。
		uploader.on( 'uploadSuccess', function( file ,reponse) {
			var url=reponse._raw
			$("input[name='ImgUrl']").val(url);
		    $( '#'+file.id ).addClass('upload-state-done');
		});
		// 文件上传失败，显示上传出错。
		uploader.on( 'uploadError', function( file ) {
		    var $li = $( '#'+file.id ),
		        $error = $li.find('div.error');
		    // 避免重复创建
		    if ( !$error.length ) {
		        $error = $('<div class="error"></div>').appendTo( $li );
		    }
		    $error.text('上传失败');
		});

		// 完成上传完了，成功或者失败，先删除进度条。
		uploader.on( 'uploadComplete', function( file ) {
		    $( '#'+file.id ).find('.progress').remove();
		});

		uploader.on('error', function(handler){
			console.log(handler);
			if(handler=='Q_TYPE_DENIED'){
				 swal("操作失败", '资料上传只支持jpg/jpeg/png/svg格式文件！', "error");
			}
			if(handler='Q_EXCEED_NUM_LIMIT'){
				swal('只能上传'+limitNum+'张图片！');
			}
		});
	}
}